home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 2
/
Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso
/
Aminet
/
comm
/
uucp
/
AM114src.lha
/
notify.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-07-20
|
2KB
|
64 lines
/*
*
* AM --- AmigaMail
* (C) 1991, 1992 by Christian Riede
*
* AM is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY. No author or distributor accepts responsibility to anyone
* for the consequences of using it or for whether it serves any
* particular purpose or works at all, unless he says so in writing.
* Refer to the GNU General Public License, Version 1, for full details.
*
* Everyone is granted permission to copy, modify and redistribute AM,
* but only under the conditions described in the GNU General Public
* License, Version 1. A copy of this license is supposed to have been
* given to you along with AM so you can know your rights and responsi-
* bilities. It should be in a file named COPYING. Among other things,
* the copyright notice and this notice must be preserved on all copies.
*
*
*
*/
#include "am.h"
#include "server.h"
void Notify(int User,int Event,int Number,struct Mail *Mail)
{
struct NotifyPort *NotifyPort;
struct Mail *New;
struct AMMessage *Msg;
for (NotifyPort = (struct NotifyPort *)NotifyPortList[User].lh_Head;
NotifyPort->np_Node.ln_Succ;
NotifyPort = (struct NotifyPort *)NotifyPort->np_Node.ln_Succ)
if (Msg = AllocAMMsg())
{
if (Mail)
{
/* give client a copy of the new item */
New = AllocMem(sizeof(struct Mail),MEMF_CLEAR);
if (New)
{
*New = *Mail;
Msg->NewMail = New;
}
else
{
FreeMem(Msg,sizeof(struct AMMessage));
break; /* don't send message when allocation has failed */
}
}
Msg->Number = Number;
Msg->Action = Event;
/* no reply, client must free the message */
Msg->AMMsg.mn_ReplyPort = 0;
PutMsg(NotifyPort->np_Port,(struct Message *)Msg);
}
}